Distributed systems may comprise hash chains (e.g., blockchains), which are data structures that record data in a fashion analogous to a chain. Each update to the chain creates a new block containing the data and each block is linked to the previous block by a cryptographic function. Blocks are generally appended to the end of the chain and, once in the chain, resist modification so that the cryptographic links in the chain are preserved. Entities (e.g., applications) that receive data from blocks of the chain may check the cryptographic links to test the validity of the chain. Any modification of a block is detected and subject to remedial or other action. Hash chains are generally managed by peer-to-peer networks, which collectively adhere to an established protocol for validating each new block and are designed to be inherently resistant to modification of data. Once recorded, the data in any given block cannot be modified without the alteration of subsequent blocks and the involvement of the network.
Hash chains are often maintained in a distributed manner, such that a copy of the entire chain or a portion of the chain is maintained on each of a plurality of nodes connected over a network. Because nodes may have different security attributes, may be in different geographic regions, and/or may be associated with different entities that have different levels of access to data, some types of data may not be suited for storage on all nodes in a system. For example, sensitive data may need to be stored in particular nodes or in particular geographic regions. This may present problems in the context of distributed hash chains, as hash chains store data in a serial fashion, and generally validate data based on a traversal of the entire chain. If one block of a distributed hash chain contains sensitive data not suitable for storage on certain nodes in a system, the integrity of the chain may be broken on these nodes. As such, there exists a need for improved techniques of isolating data in distributed hash chains.